package cn.cqie.attendance.manager.service;

import cn.cqie.attendance.common.util.Page;
import cn.cqie.attendance.common.util.PageBean;
import cn.cqie.attendance.manager.pojo.AdminStudent;
import cn.cqie.attendance.manager.pojo.AdminStudentSerch;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * @author 697
 * @date 2021/6/18 16:54
 */
@Service
public interface AdminStudentService {

    /**
     * 根据班级ID查询该班级下所有学生信息
     * @param classesId 班级ID
     * @return
     */
    PageBean<AdminStudent> queryAllStudentByClassesId(Integer classesId, Integer pageSize, Integer pageNum);


    /**
     * 查询某个班级下的学生信息，可模糊查询 组合查询
     * @param adminStudentSerch
     * @param pageSize 每一页数量
     * @param pageNum 页数
     * @return
     */
    PageBean<AdminStudent> queryAllStudentByClassesIdByCombination(AdminStudentSerch adminStudentSerch, Integer pageSize, Integer pageNum);


    /**
     * 给某个班级新增学生
     * @param id ID
     * @param stuNumber 学号
     * @param stuName 学生姓名
     * @param identity 身份证号
     * @param gender 性别 0女 1男
     * @param email 邮箱
     * @param phone 手机号
     * @param direction 项目角色
     * @return
     */
    Page addStudentToClasses(Integer id,String stuNumber, String stuName, String identity, String gender, String email, String phone, Integer direction);


    /**
     * 根据ID查询班级信息
     * @param id
     * @return
     */
    Page<AdminStudent> queryClassesInfoById(Integer id);


    /**
     * 查询某个班级是否存在某个学生
     * @param adminStudent
     * @param
     * @return
     */
    int queryStudentByClassIDAndStuNumber(AdminStudent adminStudent);


    /**
     * 修改母个班级学生信息
     * @param classId 班级ID
     * @param stuId 学生ID
     * @param stuNumber 学号
     * @param stuName 学生姓名
     * @param identity 身份证
     * @param gender 性别 0女 1男
     * @param email 邮箱
     * @param phone 手机号
     * @param direction 方向
     * @return
     */
    Page updateStudentById(Integer classId,Integer stuId,String stuNumber, String stuName, String identity, String gender, String email, String phone, Integer direction);


    /**
     * 通过学生id批量删除(某个班级的)学生、支持批量删除(单独删除)
     * @param list
     * @return
     */
    Page deleteStudentById(List list);


    /**
     * 设置组长
     * @param studentId
     * @param groupId
     * @return
     */
    Page updateGroupLeaderByGroupId(Integer studentId,Integer groupId);

}
